home *** CD-ROM | disk | FTP | other *** search
- on doMode flow, theMode
- global gFlowType, gPage, gStartTime, gBlindfold, gOldDelay, gDictNum, gTimer, gTest, gCurQuad, gNexQuad, gNextUnit, gNextChap, gNextPage, gNewChap, gSaveMode, gOldTimer, gOldTest
- set ret to #ok
- set gFlowType to flow
- set gSaveMode to "000"
- if gFlowType = #sms then
- set newState to getSMSNextMode(#firstTime)
- set goto to doFirstState(newState)
- if goto = "endScreen" then
- set ret to #done
- else
- if goto = "error" then
- set goto to "endScreen"
- set ret to #error
- end if
- end if
- else
- if gFlowType = #SCRAMBLE then
- set gOldDelay to gBlindfold
- set gBlindfold to random(4) = 1
- set gOldTest to gTest
- set gTest to 0
- set gOldTimer to gTimer
- set gTimer to 0
- end if
- end if
- if theMode = "skip" then
- nothing()
- else
- if theMode = "random" then
- translateMode(randMode())
- set gPage to setPage(randPage(gPage))
- set gNextPage to randPage(gNextPage)
- else
- translateMode(theMode)
- set gPage to setPage(1)
- set gNextPage to 2
- end if
- end if
- if (ret <> #done) and (ret <> #error) then
- set gNextUnit to ChapStr2Unit(gNewChap)
- set gNextChap to ChapStr2Chap(gNewChap)
- newPage(gCurQuad, ChapStr2Unit(gNewChap), ChapStr2Chap(gNewChap), gPage)
- newPage(gNexQuad, gNextUnit, gNextChap, gNextPage)
- checkLoad()
- set gStartTime to the ticks
- set gDictNum to 0
- initPage()
- goChangeMeta("initPlay")
- end if
- return ret
- end
-